package com.fenqile.pop.product.param;

import java.time.LocalDateTime;

import com.fenqile.pop.BusinessParameter;
import com.fenqile.pop.enums.SkuStatus;
import com.fenqile.pop.product.SkuInfo;
import com.fenqile.pop.product.result.SkuListGetResult;
import com.fenqile.pop.utility.FieldOpt;
import com.fenqile.pop.utility.PageableResult;

/**
 * sku 列表查询 {@value #API_METHOD}
 * 
 * @see PageableResult
 * @see SkuListGetResult
 * 
 * @author Coby [cobylin@live.com] 2017
 */
public class SkuListGetParameter extends BusinessParameter<SkuListGetResult> {
	public static final String API_METHOD = "fenqile.sku.list.get";
	
	/**
	 * sku_id
	 */
	public String sku_id; 
	
	/**
	 * 商品id
	 */
	public String product_id; 
	
	/**
	 * 起始时间
	 */
	public LocalDateTime begin_time; 
	
	/**
	 * 结束时间
	 */
	public LocalDateTime end_time; 
	
	/**
	 * sku状态。
	 */
	public SkuStatus status;
	
	/**
	 * 一级类目id
	 */
	public Integer category_id_1;
	
	/**
	 * 二级类目id
	 */
	public Integer category_id_2;
	
	/**
	 * 三级类目id
	 */
	public Integer category_id_3;
	
	/**
	 * 当前页码，默认 为1
	 */
	public Integer page;
	
	
	/**
	 * 每页条数，默认 40，最大100
	 */
	public Integer page_size;
	
	/**
	 * 排序方式。格式 为 column:asc/d esc, 默认创建 时间降序。
	 * column 可选 值 :sku_num( 商品数量 ),modify_ti me(最近修改 时 间 ),sku_sell_n um(商品销量);
	 * 
	 */
	public Integer sort_type;
	 
	/**
	 * 价格策略对应 定价方式，如基 准金价、自定义 定价
	 * 0 表示不返回价格 策略，非 0 表示返 回
	 * 
	 */
	public Integer need_price_strategy; 

	/**
	 * 结果集返回字段列表，多个字段以半角逗号分隔
	 * 可选值为响应说明 中的所有一级参数
	 * 必须
	 * 
	 */
	public FieldOpt<SkuInfo> fields = new FieldOpt<>(SkuInfo.class); 
	

	@Override
	public String getApiMethod() {
		return API_METHOD;
	}
	

}
